# Copyright (c) Huawei Technologies Co., Ltd. 2019. All rights reserved.

# CMake lowest version requirement
cmake_minimum_required(VERSION 3.5.1)

# project information
project(OpenPose)

# Compile options
add_compile_options(-std=c++11)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  "../../../out")
set(CMAKE_CXX_FLAGS_DEBUG "-fPIC -O0 -g -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -O2 -Wall")

add_definitions(-DENABLE_DVPP_INTERFACE)
set(INC_PATH $ENV{DDK_PATH}) # ascend-toolkit 20.1
set(LIB_PATH $ENV{NPU_HOST_LIB})

set(ROOT_PATH "/home/mind/Ascend")

if (NOT DEFINED ENV{DDK_PATH})
    set(INC_PATH "/usr/local/Ascend")
    message(STATUS "set default INC_PATH: ${INC_PATH}")
else ()
    message(STATUS "env INC_PATH: ${INC_PATH}")
endif()



if (NOT DEFINED ENV{NPU_HOST_LIB})
    set(LIB_PATH "/usr/local/Ascend/acllib/lib64/stub/")
    message(STATUS "set default LIB_PATH: ${LIB_PATH}")
else ()
    message(STATUS "env LIB_PATH: ${LIB_PATH}")
endif()

# Header path
message("${INC_PATH}/acllib/include/") # acllib
include_directories(
    ${ROOT_PATH}/ascend_ddk/arm/include/opencv4/ # opencv
    ${ROOT_PATH}/ascend_ddk/arm/include/
    ${ROOT_PATH}/presenteragent/include/ # presenter agent lib path
    ${ROOT_PATH}/presenteragent/include/ascenddk/ # presenter agent lib path
    ${INC_PATH}/acllib/include/ # acllib
    ${ROOT_PATH}/  # driver etc.
    ../inc/
)

if(target STREQUAL "Simulator_Function")
    add_compile_options(-DFUNC_SIM)
endif()

# add host lib path

link_directories(
    ${LIB_PATH}
    ${ROOT_PATH}/driver/
    ${ROOT_PATH}/ascend_ddk/arm/lib/ # opencv here
    ${ROOT_PATH}}/presenteragent/include/agent/ # presenteragent here
)

add_executable(main
        utils.cpp
        model_process.cpp
        pose_process.cpp
        main.cpp)

if(target STREQUAL "Simulator_Function")
    target_link_libraries(main funcsim)
else()
    target_link_libraries(main ascendcl stdc++ ascendcl acl_dvpp stdc++ opencv_highgui opencv_core opencv_imgproc opencv_imgcodecs opencv_calib3d opencv_features2d opencv_videoio protobuf presenteragent dl rt)

endif()
